// pages/cart/cart.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    items: [
      {value: 'USA', name: '美国'},
      {value: 'CHN', name: '中国', checked: true},
      {value: 'BRA', name: '巴西'},
      {value: 'JPN', name: '日本'},
      {value: 'ENG', name: '英国'},
      {value: 'FRA', name: '法国'}
    ],
    goods:[
      {id:1,name:'芹菜',price:20,num:10,isChecked:false,imgUrl:'/static/images/img1.png'},
      {id:2,name:'大米',price:3,num:20,isChecked:true,imgUrl:'/static/images/img2.png'}
    ],
    isAllChecked:false,
    totalPrice:0
  },
  onLoad(){
    this.computedTotalPrice()
  },
  // checkboxChange(e){
  //   console.log(e);
  // }
  changeCount(e){
    console.log(e);
    let checkedValueArr = e.detail.value
    if(checkedValueArr.length === this.data.goods.length){ // 全选了
        // 把所有的商品状态修改为 true
        let goodsTem = JSON.parse(JSON.stringify(this.data.goods))
        goodsTem.forEach(item=>item.isChecked = true)
      this.setData({
        isAllChecked:true,
        goods:goodsTem
      })

    }else{ // 非全选
      let goodsTem = JSON.parse(JSON.stringify(this.data.goods))
      goodsTem.forEach(item=>{
        // includes 全等的判断
        if(checkedValueArr.includes(String(item.id))){
          item.isChecked = true
        }else{
          item.isChecked = false
        }
      })
      this.setData({
        isAllChecked:false,
        goods:goodsTem
      })
    }

    // 计算总价
    this.computedTotalPrice()

  },
  // 全选反选
  toggleAllChecked(){
    // console.log(e);
    if(this.data.isAllChecked){ // 全选状态
        // 把所有的商品状态修改为 false
        let goodsTem = JSON.parse(JSON.stringify(this.data.goods))
        goodsTem.forEach(item=>item.isChecked = false)
        // 修改全选状态
        this.setData({
          isAllChecked:false,
          goods:goodsTem
        })
    }else{ // 非全选状态
       // 把所有的商品状态修改为 false
       let goodsTem = JSON.parse(JSON.stringify(this.data.goods))
       goodsTem.forEach(item=>item.isChecked = true)
      // 修改全选状态
      this.setData({
        isAllChecked:true,
        goods:goodsTem
      })
    }

    // 计算总价
    this.computedTotalPrice()
  },

  computedTotalPrice(){
    let totalPrice = this.data.goods.reduce((total,item)=>{
      if(item.isChecked){
        return total + item.price * item.num
      }else{
        return total
      }
    },0)

    this.setData({
      totalPrice:totalPrice
    })
  },
  // 商品添加
  inc(e){
    let id = e.currentTarget.dataset.id
    var index = e.currentTarget.dataset.index;
    var val = `goods[${index}].num`
    let oldNum = this.data.goods.find(item=>item.id==id).num
    let newNum = ++oldNum
    this.setData({
      [val]:newNum
    })
    this.computedTotalPrice()
  },
  // 减少商品
  dec(){

  }

 
})